package co.edu.udea.iw.prestamos.ws;

import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import co.edu.udea.iw.prestamos.bl.SessionBL;

/**
 * Recurso para administrar la autenticacion a la aplicacion
 * @author Dave Rivera <daverivera90@gmail.com>
 * @since 03-07-2014
 * @version 1.0
 */
@Path("autenticacion")
@Component
@Transactional
public class AutenticacionResource {
	
	@Autowired
	private SessionBL sessionBL;
	
	/**
     * Recurso de autenticacion con usuario y contrasena
     * @param username Nombre de usuario del portal
     * @param password Contrasena del usuario en el portal
     * @return Mensaje descriptivo
     */
    @GET
    @Path("login")
    @Produces({MediaType.APPLICATION_JSON})
    public Object autenticar(@HeaderParam("user") String username, @HeaderParam("pass") String password) {
    	return sessionBL.login(username, password);
    	
    }
	
    /**
     * Metodo para cerrar la sesion
     * @param token Token del dispositivo
     * @return Respuesta si se cerro correctamente la sesion
     */
    @POST
    @Path("logout")
    @Produces({MediaType.APPLICATION_JSON})
    public Object logout(@HeaderParam("token") String token){
        return sessionBL.logout(token);
    }

}
